import router from "@/router";
import store from "@/store";

router.beforeEach((to, from, next) => {
    // 获取 用户信息
    let token = store.state.user.userToken;
    if (!token) {
        // 如果没有 token 查看是否需要 权限认证
        // 查看跳转的页面是否需要权限
        if (to.matched.length > 0 && !to.matched.some(item => item.meta.requiresAuth)) {
            // 如果不需要就直接放行
            next();
        } else {
            next({
                path: "/login"
            })
        }
    } else {
        if (!store.state.user.permissions.length > 0) {
            // 防止请求不到后端无限访问
            store.state.user.permissions.push("system:login");
            // 请求后端
            store.dispatch("user/userInfo_menus_permissions").then(() => {
                next({
                    path: to.path
                });
            })
        } else {
            // 如果store存在权限 还访问 "/login" 就返回到他刚才访问的界面
            if (to.path !== "/login") {
                next();
            } else {
                // name:store.state.user.currentMenu 当前点击的菜单名
                next({
                    name: store.state.menu.currentMenu
                })
            }
        }
    }
});
/**
 * 设置当前路由位置
 */
router.afterEach(to => {
    store.commit("menu/SET_CURRENT_MENU", to.name)
});